package com.ryder.petmatediarybackend.module.social.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;

import java.util.List;

/**
 * 创建社交动态DTO
 *
 * @author Ryder
 * @version 1.0
 * @since 1.0
 * 更新日期: 2025-10-31 03:40:00
 */
@Data
@Schema(description = "创建社交动态请求DTO")
public class CreatePostDTO {

    @Schema(description = "关联宠物ID（可选）", example = "1983935561232031745")
    private Long petId;

    @NotNull(message = "动态类型不能为空")
    @Schema(description = "动态类型：1=宠物圈子 2=社交小圈子 3=店铺圈子", example = "1", required = true)
    private Integer postType;

    @Schema(description = "圈子ID（社交小圈子/店铺圈子）", example = "123456")
    private Long circleId;

    @NotBlank(message = "动态内容不能为空")
    @Schema(description = "动态内容（文字描述）", example = "今天带小橘去公园玩啦～开心！", required = true)
    private String content;

    @Schema(description = "图片URL列表（通过文件上传接口获得）", example = "[\"https://minio.xxx.com/petmate/post/123/img1.jpg\", \"https://minio.xxx.com/petmate/post/123/img2.jpg\"]")
    private List<String> mediaUrls;

    @NotNull(message = "隐私级别不能为空")
    @Schema(description = "隐私级别：1=公开 2=私密", example = "1", required = true)
    private Integer privacyLevel;

    @Schema(description = "位置信息", example = "北京市朝阳区某某公园")
    private String location;
}

